package com.lin.cloud.disk.service;

import com.lin.cloud.disk.common.entity.request.AccountRequestDTO;
import com.lin.cloud.disk.entity.pojo.Directory;
import com.lin.cloud.disk.entity.request.directory.GetDirectoryListRequest;
import com.lin.cloud.disk.entity.request.directory.IsExistParentDirectoryRequest;
import com.lin.cloud.disk.entity.request.directory.RemoveDirectoryRequest;
import com.lin.cloud.disk.entity.request.directory.RestoreDirectoryRequest;

import java.util.List;

/**
 * (Directory)表服务接口
 *
 * @author ljc
 * @since 2020-12-30 21:53:41
 */
public interface IDirectoryService {

    /**
     * 创建目录
     * @param directory
     */
    void createDirectory(Directory directory);

    /**
     * 是否存在父目录
     * @param request
     * @return
     */
    boolean isExistParentDirectory(IsExistParentDirectoryRequest request);

    /**
     * 获取目录列表
     * @param request
     * @return
     */
    List<Directory> getDirectoryByList(GetDirectoryListRequest request);


    /**
     * 修改目录名字
     * @param directory
     * @return
     */
    int updateDirectoryName(Directory directory);

    /**
     * 逻辑删除目录
     * @param request
     * @return
     */
    int logicRemoveDirectory(RemoveDirectoryRequest request);


    /**
     * 物理删除目录
     * @param request
     * @return
     */
    int physicistRemoveDirectory(RemoveDirectoryRequest request);

    /**
     * 逻辑恢复目录
     * @param request
     * @return
     */
    int logicRestoreDirectory(RestoreDirectoryRequest request);
}